package com.xjm_cloud_admin.controller;

import com.xjm_cloud_admin.annotation.Anonymous;
import com.xjm_cloud_admin.domain.vo.req.RegisterReqVo;
import com.xjm_cloud_admin.domain.vo.req.UserInfoReqVo;
import com.xjm_cloud_admin.service.XjmUserService;
import com.xjm_cloud_admin.util.R;
import com.xjm_cloud_admin.domain.vo.req.UserLoginReqVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import jakarta.validation.Valid;

/**
 * 用户表(XjmUser)表控制层
 *
 * @author 浪漫写尽歌谱
 * @since 2024-04-22 16:23:27
 */
@RestController
public class XjmUserController {

    /**
     * 服务对象
     */
    @Resource
    private XjmUserService xjmUserService;

    /**
     * 登录
     */
    @PostMapping("/login")
    public R login(@RequestBody @Valid UserLoginReqVo xjmUser) {
        return xjmUserService.login(xjmUser);
    }

    /**
     * 注册
     * @param vo 注册信息
     * @return
     */
    @PostMapping("/register")
    @Anonymous
    public R register(@RequestBody RegisterReqVo vo) {
        return xjmUserService.register(vo);
    }

    /**
     * 获取用户信息
     */
    @GetMapping("/user/info")
    public R info() {
        return xjmUserService.info();
    }

    /**
     * 修改用户信息
     */
    @PostMapping("/user/update")
    public R update(@RequestBody @Valid UserInfoReqVo vo) {
        return xjmUserService.update(vo);
    }

    /**
     * 修改头像
     *
     * @param file 文件
     */
    @PostMapping("/user/avatar")
    public R avatar(MultipartFile file) {
        return xjmUserService.avatar(file);
    }

}